package com.company.project.robot.emum;

import java.util.HashMap;
import java.util.Map;

/**
 * @author Frank
 * @email 2102378781@qq.com
 * @date 2023/2/26 22:04
 */
public enum SendTypeEnum {

    /**
     * SendTextMsg
     * 发送文本消息 robot_wxid to_wxid(群/好友) msg
     * SendImageMsg
     * 发送图片消息 robot_wxid to_wxid(群/好友) msg(name[md5值或其他唯一的名字，包含扩展名例如1.jpg], url)
     * SendVideoMsg
     * 发送视频消息 robot_wxid to_wxid(群/好友) msg(name[md5值或其他唯一的名字，包含扩展名例如1.mp4], url)
     * SendFileMsg
     * 发送文件消息 robot_wxid to_wxid(群/好友) msg(name[md5值或其他唯一的名字，包含扩展名例如1.txt], url)
     * SendGroupMsgAndAt
     * 发送群消息并艾特(4.6.5 我是小白 也亲测了，也可以用) robot_wxid, group_wxid, member_wxid,member_name, msg
     * member_wxid:要艾特成员的ID，支持多个，可用英文,号或者|号分割他们
     * member_name:要艾特成员的自定义昵称内容，可不填，则取默认的昵称
     * 下面补一个艾特多人的例子吧！
     *   {
     *    "event": "SendGroupMsgAndAt",
     *    "to_wxid": "18221469840@chatroom",
     *    "msg": "艾特多人测试",
     *    "robot_wxid": "wxid_6mkmsto8tyvf52",
     *    "group_wxid": "18221469840@chatroom",
     *    "member_wxid": "sundreamer,wxid_nsyokexux8or22"
     *   }
     * SendEmojiMsg
     * 发送动态表情 robot_wxid to_wxid(群/好友) msg(name[md5值或其他唯一的名字，包含扩展名例如1.gif], url)
     * SendLinkMsg
     * 发送分享链接 robot_wxid, to_wxid(群/好友), msg(title, text, target_url, pic_url, icon_url)
     * SendMusicMsg
     * 发送音乐分享 robot_wxid, to_wxid(群/好友), msg(music_name, type)
     * GetRobotName
     * 取登录账号昵称 robot_wxid
     * GetRobotHeadimgurl
     * 取登录账号头像 robot_wxid
     * GetLoggedAccountList
     * 取登录账号列表 不需要参数
     * GetFriendList
     * 取好友列表 robot_wxid(不传该值，返回全部账号的好友列表)
     * GetGroupList
     * 取群聊列表 robot_wxid(不传返回全部机器人的)
     * GetGroupMemberList
     * 取群成员列表 robot_wxid, group_wxid
     * GetGroupMemberInfo
     * 取群成员详细 robot_wxid, group_wxid, member_wxid
     * AcceptTransfer
     * 接收好友转账 robot_wxid, to_wxid, msg(接收到事件里的msg原样传回)
     * AgreeGroupInvite
     * 同意群聊邀请 robot_wxid, msg
     * AgreeFriendVerify
     * 同意好友请求 robot_wxid, msg
     * EditFriendNote
     * 修改好友备注 robot_wxid, to_wxid, msg
     * DeleteFriend
     * 删除好友 robot_wxid, to_wxid
     * GetappInfo
     * 取插件信息 无参数
     * GetAppDir
     * 取应用目录 无
     * 测试发现可爱猫能取到，但是扔进返回数据里会消失，传不出来
     * AddAppLogs
     * 添加日志 msg
     * ReloadApp
     * 重载插件 无
     * RemoveGroupMember
     * 踢出群成员 robot_wxid, group_wxid, member_wxid
     * EditGroupName
     * 修改群名称 robot_wxid, group_wxid, msg
     * EditGroupNotice
     * 修改群公告 robot_wxid, group_wxid, msg
     * BuildNewGroup
     * 建立新群 robot_wxid, msg(好友Id用”|”分割)
     * 测试发现可爱猫执行成功，但是没见群在哪。。。你们自测！
     * QuitGroup
     * 退出群聊 robot_wxid, group_wxid
     * 我测试发现没退出来，也可能可爱猫没实现吧 你们自测
     * InviteInGroup
     * 邀请加入群聊 robot_wxid, group_wxid, to_wxid
     * 这里可以制作那种暗号入群的功能，相当不错哈～
     * RevokeMsg
     * 撤回消息 robot_wxid, msg
     * 做娱乐机器人必备，基本发出的消息都需要撤回
     * GetWechatMoments
     * 获取朋友圈 robot_wxid, msg
     * 测试获取失败，大家自测吧
     * ReplyWechatMoments
     * 评论朋友圈 robot_wxid, msg[moments_id,content]
     * 测试失败，大家自测吧
     * SendDiyMusicMsg
     * 发送自定义音乐 robot_wxid, to_wxid,msg[name, singer, home, url, type]
     * 发送自己指定的mp3地址音乐，必须音乐文件地址
     */

    SendTextMsg("SendTextMsg", "发送文本消息"),
    SendImageMsg("SendImageMsg", "发送图片消息"),
    SendVideoMsg("SendVideoMsg", "发送视频消息"),
    SendFileMsg("SendFileMsg", "发送文件消息"),
    SendGroupMsgAndAt("SendGroupMsgAndAt", "发送群消息并艾特"),
    SendEmojiMsg("SendEmojiMsg", "发送动态表情"),
    SendLinkMsg("SendLinkMsg", "发送分享链接"),
    SendMusicMsg("SendMusicMsg", "发送音乐分享"),
    GetRobotName("GetRobotName", "取登录账号昵称"),
    GetRobotHeadimgurl("GetRobotHeadimgurl", "取登录账号头像"),
    GetLoggedAccountList("GetLoggedAccountList", "取登录账号列表 不需要参数"),
    GetFriendList("GetRobotName", "取好友列表"),
    GetGroupList("GetRobotName", "取群聊列表"),
    GetGroupMemberList("GetGroupMemberList", "取群成员列表"),
    GetGroupMemberInfo("GetGroupMemberInfo", "取群成员详细"),
    AcceptTransfer("AcceptTransfer", "接收好友转账"),
    AgreeGroupInvite("AgreeGroupInvite", "同意群聊邀请"),
    AgreeFriendVerify("AgreeFriendVerify", "同意好友请求"),
    EditFriendNote("EditFriendNote", "修改好友备注"),
    DeleteFriend("DeleteFriend", "删除好友"),
    GetappInfo("EditFriendNote", "取插件信息"),
    ReloadApp("ReloadApp", "重载插件"),
    RemoveGroupMember("RemoveGroupMember", "踢出群成员"),
    EditGroupName("EditGroupName", "修改群名称"),
    EditGroupNotice("EditGroupNotice", "修改群公告"),
    QuitGroup("QuitGroup", "退出群聊 "),
    SendDiyMusicMsg("SendDiyMusicMsg", "发送自定义音乐"),
    ;

    private String type;
    private String  desc;

    public static Map<String, SendTypeEnum> map = new HashMap<String, SendTypeEnum>();

    static {
        SendTypeEnum[] enums = SendTypeEnum.values();
        for (SendTypeEnum e : enums){
            map.put(e.getType(), e);
        }
    }

    private SendTypeEnum(String type, String desc){
        this.type = type;
        this.desc = desc;
    }

    public String getType() {
        return this.type;
    }

    public String getDesc() {
        return this.desc;
    }

    public SendTypeEnum getEnum(String  type){
        return map.get(type);
    }

    public Map getEnumMap(){
        return map;
    }

}
